using System;

namespace demo
{
    /// <summary>
    /// 测试密码加密解密功能
    /// </summary>
    public class TestPasswordEncryption
    {
        public static void Main(string[] args)
        {
            Console.WriteLine("=== 密码加密解密功能测试 ===");
            
            // 测试1：基本加密解密
            string originalPassword = "test123";
            Console.WriteLine($"原始密码: {originalPassword}");
            
            try
            {
                string encrypted = PasswordEncryption.Encrypt(originalPassword);
                Console.WriteLine($"加密后: {encrypted}");
                
                string decrypted = PasswordEncryption.Decrypt(encrypted);
                Console.WriteLine($"解密后: {decrypted}");
                
                bool isValid = originalPassword == decrypted;
                Console.WriteLine($"加密解密是否正确: {isValid}");
                
                // 测试2：验证功能
                bool validationResult = PasswordEncryption.ValidateEncryption();
                Console.WriteLine($"验证功能测试: {validationResult}");
                
                // 测试3：用户登录管理器功能
                Console.WriteLine("\n=== 用户登录管理器功能测试 ===");
                
                // 保存用户信息
                UserLoginManager.SaveUserLoginInfo("testuser", "testpass123");
                Console.WriteLine("已保存用户信息: testuser");
                
                // 获取用户密码
                string retrievedPassword = UserLoginManager.GetUserPassword("testuser");
                Console.WriteLine($"获取到的密码: {retrievedPassword}");
                
                // 检查是否可以自动填充
                bool canAutoFill = UserLoginManager.CanAutoFillPassword("testuser");
                Console.WriteLine($"是否可以自动填充: {canAutoFill}");
                
                // 获取有效用户名列表
                var validUsers = UserLoginManager.GetValidUserNames();
                Console.WriteLine($"有效用户数量: {validUsers.Count}");
                
                // 获取最后登录用户
                string lastUser = UserLoginManager.GetLastLoginUser();
                Console.WriteLine($"最后登录用户: {lastUser}");
                
                Console.WriteLine("\n测试完成！");
            }
            catch (Exception ex)
            {
                Console.WriteLine($"测试过程中发生错误: {ex.Message}");
            }
            
            Console.WriteLine("按任意键退出...");
            Console.ReadKey();
        }
    }
}